package NowCoder.JavaSE.String;
import java.util.*;

/**
 * 链接：https://www.nowcoder.com/questionTerminal/7615ed51b7b94b9eadf0776146b4e23c
 * 来源：牛客网
 * 字符串计数
 * 热度指数：221时间限制：C/C++ 1秒，其他语言2秒 空间限制：C/C++ 64M，其他语言128M
 * 给定一个仅由小写字母组成且长度不超过106的字符串，将首字符移到末尾并记录所得的字符串，不断重复该操作，虽然记录了无限个字符串，但其中不同字符串的数目却是有限的，那么一共记录了多少个不同的字符串？
 *
 * 输入描述:
 * 输入给定的字符串。
 *
 * 输出描述:
 * 输出记录的不同字符串的数目。
 * 示例1
 * 输入
 * abab
 * 输出
 * 2
 * 说明
 * 记录了abab和baba这2个不同的字符串。
 */
public class 字符串计数_编程_1_7_12 {
    //TODO：请重新做这一道题
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String string = scanner.next();
        char[] pattern = string.toCharArray();
        int n = pattern.length;
        int[] nexts = new int[n];
        nexts[0] = 0;
        int i = 1;
        int len = 0;
        while(i < n) {
            if(pattern[i] == pattern[len]) {
                len++;
                nexts[i] = len;
                i++;
            }
            else {
                if(len > 0) len = nexts[len - 1];
                else {
                    nexts[i] = len;
                    i++;
                }
            }
        }
        if(n % (n - nexts[n - 1]) == 0)
            System.out.println(n - nexts[n - 1]);
        else System.out.println(n);
    }
}
